package busco

import (
	"wails/schema/enums/busenum"
)

// @schema_export --ident=schema --json --_type=主体修正项  --_typeGroup=/隐藏
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项
type S主体修正项 struct {
}

// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_集合
type S主体修正项_集合 struct {
	S主体修正项

	// @alias 修正1
	X修正1 interface{} `_type:"主体修正项"`

	// @alias 修正2
	X修正2 interface{} `_type:"主体修正项"`

	// @alias 修正3
	X修正3 interface{} `_type:"主体修正项"`

	// @alias 更多
	G更多 map[string]interface{} `_type:"主体修正项"`
}

// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_修正卡片数量
type S主体修正项_修正卡片数量 struct {
	S主体修正项
	// 卡槽激活后，修正装备到主体
	// 往上追溯遇到的第一个指定主体种类的主体
	// @alias 装备到主体
	Z装备到主体 busenum.Z主体种类

	// @alias 指定卡包
	Z指定卡包 string `link:"卡包"`

	// @alias 指定卡片
	Z指定卡片 string `link:"卡片"`

	// @alias 修正公式
	G修正公式 *X修正公式
}

// 未实现
// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_修正属性字符串
type S主体修正项_修正属性字符串 struct {
	S主体修正项
	// 卡槽激活后，修正装备到主体
	// 往上追溯遇到的第一个指定主体种类的主体
	// @alias 装备到主体
	Z装备到主体 busenum.Z主体种类

	// @alias 属性
	S属性 string `link:"属性"`

	// @alias 属性值
	S属性值 string
}

// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_修正属性
type S主体修正项_修正属性 struct {
	S主体修正项
	// 卡槽激活后，修正装备到主体
	// 往上追溯遇到的第一个指定主体种类的主体
	// @alias 装备到主体
	Z装备到主体 busenum.Z主体种类

	// @alias 修正属性
	X修正属性 map[string]*S主体修正_修正属性项

	// 场景：星际中，狂战士的攻击力+1
	// @alias 指定卡片
	Z指定卡片 string `link:"卡片"`
	// 用于指定分类
	// 场景：对指定职业的属性修正
	// @alias 指定扩展属性
	Z指定扩展属性 interface{} `_type:"扩展属性比较"`
}

type S主体修正_修正属性项 struct {

	// @alias 属性
	S属性 string `_type:"扩展属性"`

	// @alias 位置
	W位置 busenum.E主体属性位置

	// @alias 公式
	G公式 *X修正公式

	// @alias 乘以等级
	C乘以等级 bool
}

// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_修正等级
type S主体修正项_修正等级 struct {
	S主体修正项
	// 卡槽激活后，修正装备到主体
	// 往上追溯遇到的第一个指定主体种类的主体
	// @alias 装备到主体
	Z装备到主体 busenum.Z主体种类
	// 需要设置【指定卡片】
	// 场景：装备后，修改技能、宠物的等级
	// @alias 等级偏移
	D等级偏移 int

	// 格式1: 配置编号
	// 格式2: #标识
	// @alias 指定等级
	Z指定等级 string `link:"等级"`
}

// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_获得战斗技能
type S主体修正项_获得战斗技能 struct {
	S主体修正项

	// 符合以下条件将装备到【单位】
	// 1. 卡片所在的卡包的主体为【卡片_单位】，并设置了【单位】
	// 2. 卡片处于装备状态
	// @alias 获得技能
	H获得技能 string `link:"技能"`
}

// @schema_export --ident=schema --json --_type=主体修正项
// @schema_go
// @cache_go
// @cache_ts
// @alias 主体修正项_获得战斗单位
type S主体修正项_获得战斗单位 struct {
	S主体修正项

	// 如果装备到主体已经存在单位，则按照优先级覆盖
	// 场景：装备物品后，修改成别的单位
	// @alias 获得单位
	H获得单位 string `link:"单位"`
	// @alias 优先级
	Y优先级 int
}
